What is an ArrayList in Java